package cn.dduan.common;

/**
 * Java Object 类
 * <p>
 * 介绍：Object 类是一个特殊的类，是所有类的父类，也就是说所有类都可以调用它的方法
 * 它主要提供了以下 11 个方法，大概可以分为六类：
 * 1. 对象比较：
 * 1.1 hashCode()
 * 1.2 equals(Object obj)
 * 2. 对象拷贝：clone()
 * 3. 对象转字符串：toString()
 * 4. 多线程调度：
 * 4.1 唤醒一个在此对象监视器上等待的线程（不能重写）：notify()
 * 4.2 会唤醒在此对象监视器上等待的所有线程（不能重写）：notifyAll()
 * 4.3 暂停线程的执行（不能重写）：wait(long timeout)
 * 4.4 暂停线程的执行：wait(long timeout, int nanos)
 * 4.5 暂停线程的执行，会一直等待：wait()
 * 5. 反射（使用了final关键字修饰，故不允许子类重写）：getClass()
 * 5. 垃圾回收：finalize()
 *
 * @author dduan
 * @version 1.0
 * @date 2025/2/26
 */
public class MyObject {
    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    @Override
    public String toString() {
        return super.toString();
    }

    @Override
    protected void finalize() throws Throwable {
        super.finalize();
    }

    public static void main(String[] args) {
        MyObject myObject = new MyObject();
    }
}
